package com.gxa.sideParking.core.util;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * 封装jackson的ObjectMapper , 完成json和对象之间的转换
 * 泛型的使用: 静态方法不能使用类声明的泛型
 * @author bill
 * @date 2022/9/26 15:08
 */
public class JsonUtil {

    private static ObjectMapper objectMapper ;

    static{
        objectMapper = new ObjectMapper();
    }

    /**
     * 从对象转换为json字符串的封装方法
     * @param t 任意类型对象
     * @param <T> 任意对象的类型
     * @return 转换后的json字符串
     */
    public static <T> String ObjectToString(T t) throws JsonProcessingException {
        return objectMapper.writeValueAsString(t);
    }

    public static <T> T StringToObject(String jsonString,Class<T> clazz) throws JsonProcessingException {
        return objectMapper.readValue(jsonString, clazz);
    }
}
